import { getPage, post, get } from '../../request'

const ns = '/sys/user'

export interface User {
  userId: string // 用户ID
  userName: string // 姓名
  userCode: string // 编号
  loginName: string // 账号
  password: string // 密码
  userStatus: number // 状态, 0:禁用, 1:启用
  positionId: string // 职位ID
  cellphone: string // 手机号码
  email: string // 邮箱地址
  photo: string // 照片
  expiryDate: string // 有效期
  gender: string // 性别, 男: 1 女: 0

  positionName: string //职位名称
}

export const userApi = {
  /**
   * 查询分页用户列表
   * @param page
   * @param params
   * @returns
   */
  findListPage: (page: AxiosType.Pagination, params?: { [key: string]: any }) => {
    return getPage({ url: ns, params }, page)
  },

  /**
   * 查询单个用户
   */
  findById: (id: string) => {
    return get({ url: `${ns}/${id}` })
  },

  /**
   * 保存用户
   *
   * @param {*} data 用户对象
   * @returns
   */
  save(data: User) {
    return post({
      url: ns,
      data
    })
  },

  /**
   * 删除用户
   *
   * @param {*} data 用户id数组
   * @returns
   */
  delete(data: string[]) {
    return post({
      url: `${ns}/delete`,
      data
    })
  },

  /**
   * 修改用户密码
   * @param data
   * @returns
   */
  updatePwd(data: User) {
    return post({
      url: `${ns}/pwd/update`,
      data
    })
  },

  /**
   * 修改用户状态
   * @param data
   * @returns
   */
  updateUserStatus(data: User) {
    return post({
      url: `${ns}/status/update`,
      data
    })
  },

  /**
   * 修改我的密码
   * @param oldPwd 旧密码
   * @param newPwd 新密码
   * @returns
   */
  updateMyPwd(oldPwd: string, newPwd: string) {
    return post({
      url: `${ns}/my-pwd/update`,
      data: { oldPwd, newPwd }
    })
  }
}
